<?php

	class LoginController{
		
		private $ret = "";
		private $status = "";
		private $stater = "";
		
		public function DoControll(Database $db){
			$view = new LoginView();
			$handler = new LoginHandler($db);
			
			// loggar in med cookies
			$handler->Login($view->nameCookie(), $view->passCookie());
			// Är användaren inloggad
			if($handler->IsLoggedIn()){
				// Försöker användaren att logga ut
				if($view->TriedToLogout()){
					// Loggar ut, Tar bort kakor och lägger till status.
					$handler->DoLogout();
					$view->UnsetCookies();
					$this->status = $view->Status(LoginView::USER_LOGGED_OUT);
				}
			}			
			// Är användaren inte inloggad
			// Försöker man logga in
			if($view->TriedToLogin()){
				// Kontrollera inloggningsnamn och lösenord
				if($handler->Login($view->GetUserName(), $view->GetPassword())){
						// Gick det bra att logga in
						// Ville användaren bli ihågkommen
						if($view->DidRemember()){
							// Spara cookie
							$view->DoRemember();
						}
				}
				// Gick det inte bra att logga in
				else{
					//Berätta det
					$this->status = $view->Status(LoginView::USER_WRONG_DATA);
				}
			
			}
				//Är användaren inloggad
			if($handler->IsLoggedIn()){
				//Visa utloggningsknapp
				$this->ret = $view->DoLogoutBox($handler->GetLoggedInUserName());
				$this->status = $view->Status(LoginView::USER_LOGGED_IN);
			// Är inte inloggad 
			} else {
				//Visa inloggningsruta
				$this->ret = $view->DoLoginBox();
				
			}

			$this->stater = $view->getErrors($this->status);
			// retunerar de som vi har lagt in
			return $this->ret . $this->stater;
			
			}
		}